#include <iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
typedef struct
{
    int *base;
    int *top;
    int max1;
}t;
int b(t &s)
{
    s.base=new int[100];
    if(!s.base) exit(-2);
    s.top=s.base;
    s.max1=100;
    return 1;
}
int Push(t &s,int e)
{
    if(s.top-s.base==s.max1) return 0;
    *s.top=e;
    s.top++;
    return 1;
}
int Pop(t &s,int &e)
{
    if(s.top-s.base==s.max1) return 0;
    s.top--;
    e=*s.top;
    return 1;
}
int k(t s)
{
    if(s.top==s.base) return 0;
    else return 1;
}
void co(int n)
{
    t s;
    int e;
    b(s);
    while(n)
    {
        Push(s,n%8);
        n=n/8;
        printf("%d\n",n);
    }


     while(k(s))
     {
        Pop(s,e);
        printf("%d\n",e);
     }

}
int main()
{
    int n;
    cin>>n;
    co(n);
    return 0;
}
